Hi, my name is Rhys Cornelious. If there is one thing that I want
you to take away from reading this portfolio, it is my passion for
learning. Outside of engineering, this has led me to become a
private and glider pilot, scuba diver, hiker, marathon runner,
reader, amateur chef/baker, and more. I made this portfolio to
provide a succinct document that can provide a better
understanding of who I am and what I love doing through the
various projects included. Whether you read every word, or just
have the time to skim, I hope that this document not only helps
you understand my qualifications, but more importantly it
conveys my passion to learn and grow as an engineer.
About Me
Quick Facts
- The projects I am proudest of cannot be included here without breaching
confidentiality agreements. I would love to share what I am permitted about my
work, so please reach out! You can also peruse my resume/CV for basic details.
- I love the outdoors, and going hiking, camping, as well as fishing. As of right
now, the Rocky Mountains and Algonquin are my favourite sites to visit.
- My left ring finger lost half its feeling in an accident, but its slowly coming back!
- My number one book recommendation is Flowers for Algernon. It is the only
book I have recently read that brought me to tears, so be ready.
- I am an amateur baker and can make a mean loaf of bread. Recently I have tried
to make sourdough with mixed results, but such is life.
Rhys Cornelious
UCLA Bioengineering MSc Student
(628)-276-5261
rhyscornelious@gmail.com
r.c@ucla.edu
725 Weyburn Pl, Los Angeles
In: Rhys Cornelious
PCB Business Card
Personal Project
My goal when beginning this project was to learn more about
interfacing microcontrollers and using NFC tags while creating a
unique business card. I wanted to include a game that could be run
on a small microcontroller without using too many LEDs, allowing
it to fit cleanly on a business card. The game that I settled on was
lights out, as it requires just 25 LED’s to run. I also wanted to
include a way to show more about myself than what I could put on
the silkscreen. Initially I thought of using a QR code, but I thought
that using an NFC transponder would be a lot cooler and let me
learn about antennae design.
Objective
Key Takeaways and Future Considerations
I learned a lot about antennae design when working on this project.
It had never occurred to me how intricate they need to be to be able
to fit in such small chips. I also had never used microcontrollers on
external boards before. This let me work with bootloading software
onto a microcontroller for the first time. I used an ATmega328 as it
could have the Arduino Uno code I used in the prototype uploaded
directly to it. In the future it would be fun to try to get the project
working with a smaller, more inexpensive controller.
PCB Design
EEG Video Game Controller
BME 294L/Side Project
This project was completed with the intent of differentiating between
alpha and beta waves from a user. Initially the system was designed on
a breadboard, after which I made an optimized version in Altium.
Following this, the goal was to create a modified version of Flappy
Bird with the users’ inputs being concentration and relaxation.
Objective
Design Choices
The first interesting choice is the use of 3.3V as the ground
reference for all filters. This is done to prevent any negative
voltages from reaching the ADC, as the component
utilized does not handle these values accurately. Another
important feature is the use of a potentiometer to give the
circuit a variable gain. This is important to account for the
differences in signal magnitude that different users
produce. An important feature of the PCB is the
placement of a solid ground plane immediately below the
top layer, where the signal travels. This greatly lowers the
amount of noise which is very important when working
with such delicate signals. Finally, the layout of the board
is somewhat atypical, as it is long and narrow. This is to
provide a clear representation of the step-by-step signal
processing method.
Key Takeaways and Future Considerations
This project was extremely challenging, in large part due to the
number of stages, and the miniscule magnitude of the signals being
measured. Any time the circuit did not perform as expected the
debugging process was tedious as there were many places where
things could have gone wrong. It was extremely important to break
the system down into individual stages to get accurate information
on where issues arose. Signal preservation was also something that I
learned a lot about, as our initial system would produce a distorted
signal if you as much as blew on some parts of it. The game
development in this project is still ongoing, and you can learn more
about here. If you want to take a closer look at the electrical system
schematic and PCB design, you can find them all here.
Photoacoustic Remote Sensing Peak Detector
Photomedicine Labs
The purpose of this peak detector was to both increase the accuracy
and decrease the magnitude of data collection in photoacoustic
remote sensing (PARS) systems. Currently, the peaks of each pulse in
the time domain obtained by taking 64 samples and iterating
through each to find the greatest magnitude. The difficulty lies in
the miniscule pulse wavelength of 20ns, as well as the 50kHz
frequency that they are produced at. The design sought to use an
OPA615 transconductance amplifier due to its minimal capacitance
and high speed. Furthermore, Texas Instruments (the manufacturer)
provides a basic layout for a peak detection circuit that could be
adapted to this high precision application.
Objective
PCB Design
Due to the high-speed nature of the system, the PCB was designed to
be as efficient as possible. Certain design features, such as internal
unbroken ground planes, short and straight signal paths, decoupling
capacitors on all power supplies, and impedance matching the traces
to match the BNC connectors were all crucial to ensure signal
accuracy and clarity. The three most effective diodes (determined
from the simulations) were selected, and two different boards were
designed to have both 1 and 2 diode configurations. This meant 6
total boards were manufactured and tested. Subsequent comparisons
between the accuracy of their outputs allowed for a definitive choice
of the most effective design.
Key Takeaways and Future Considerations
Soft/Rigid Hybrid Robotic Hand
University of Waterloo Microfluidics Lab
This project aimed to utilize pneumatic soft actuators to create a
biomimetic grasping hand. Due to the highly compliant nature of the
actuators, the design was intended to provide a less rigid grasping feel
than typical cable and pully prosthesis. Main issues to overcome
included reducing off plane instability, preventing actuator bulging,
and ensuring hand dexterity. Due to the infancy of the research
project, novelty and creativity was very important for developments.
Objective
Physical Design
Gyroscope Tracking
To generate feedback for the angles of each joint, a miniature PCB
was designed for the utilization of the MPU-6050 gyroscope and
accelerometer module. This highly optimized design allowed the
boards to fit inside even the smallest pieces of the hand and provide
system feedback. A small 2 layer board was designed using EAGLE
and ordered for manufacturing. All board information was obtained
through I2C communication and processed using Arduino.
Key Takeaways and Future Considerations
A major takeaway I gained from this project was that I really enjoy being creative in my design solutions. The problem I was given was
extremely open ended and allowed me to try out a variety of ideas to solve the critical problems that the system faced. For each successful idea
you see here, there are at least 10 sub-par prototypes that were needed to achieve the final product. I got a lot of enjoyment from this type of
problem. Additionally, I further confirmed my love for multidisciplinary problems. Here I was able to use physical design, electrical design,
and software development to create a polished final project. I find that there is nothing more satisfying than when all of these fields come
together and integrate into a smoothly functioning final product. Having the knowledge of how each and every system works allows me to
effectively adapt them to aid each others’ weaknesses. For my work, I am being included in the authorship of a paper that was accepted in the
32
nd
IEEE International Conference on Robot and Human Interactive Communication (IEEE RO-MAN 2023).
CNC Drawing Robot
Personal Project
The end goal of this project was to design a robot that could draw an
image when provided G-code instructions. 2 stepper motors were to
control the X and Y axis of the robot, while a servo was implemented
to adjust the pen tip height (Z axis). An Arduino, equipped with a
modified version of GRBL allowing for the use of servos was used as
the control system, interfaced with the stepper motors using a simple
motor shield. All components were designed in SOLIDWORKS and
produced using additive manufacturing.
Objective
The system was designed to use two steppers motors for the X and Y
axis. The first motor was connected to a static part of the system, and
thus drove the movement of the rest of the apparatus along the X
axis. The second motor was fixed to an apparatus that travelled along
the X axis and drove the motion of the pen along the Y. Both of these
axis used rubber timing belts to provide and easy and accurate
driving system. The final component, the servo motor, was mounted
a opposite the marker/pen on the Y axis and connected via a length
of fishing line. When it spun, the pen was pulled upwards against a
small spring fixed within its holder. This spring ensured that the
fishing line was always under tension which was mandatory to make
sure that the marker/pen in use was stable enough to produce a
quality drawing.
Electrical/Software Components
The electrical system was quite basic and used an Arduino motor
shield to control all inputs and outputs. The key components
included the motors, servo, and contact switches which provided the
driving power and system feedback. The Arduino runs a modified
version of GRBL called Mi-GRBL, the details of which can be found
here. This allows it to control the servo motor in the Z axis. The G-
Code instructions were generated using ChiliPeppr and uploaded
directly to the Arduino. Overall, this was quite a simple process, and
only required some fine tuning through the inputting of the
dimensions and desired drive speeds, accelerations, etc.
Key Takeaways and Future Considerations
The first large takeaway from this project was to take a deeper look
into the mechanics of the system prior to manufacturing. A large
issue appeared when the upper timing belt began to rub against
itself. The pulley system was designed to maintain tension across the
axis, thus ensuring the teeth on the stepper motor would not lose
their grip. The mounting points for this belt were centered on each
opposing side of the axis, however, resulting in the belt rubbing
against itself in the first iteration of the design. While quickly adding
slots for the belts to run through was not difficult, it was an
important lesson in planning well to prevent having to redesign the
parts. Another lesson is to be sure of the tolerance capabilities of the
manufacturing method used, as some printed parts needed to be
scrapped after the set screws did not bite or the metal rods were
unable to fit.
Force Sensing Mat
University of Waterloo IDEAs Clinic
This project was completed with the intent of use as a teaching aid by
professors at the University of Waterloo. The original plan was for it
to be used in gait analysis for biomechanics courses, and as the project
progressed it became apparent that it would also be a good physical aid
in circuits courses do to the visual depiction of the signal wiring.
Objective
Electrical System
The multiplexers were all attached to
the Arduino Mega using perf boards,
and to the mat through over 300 ft of
wire. These boards were organized
and soldered as neatly as possible to
allow ease of understanding when
used as a teaching aid. It is easier to
see the rows of copper tape
underneath the vinyl sheet used to
protect the components within the
mat. The mat is 128x64 rows, and
the tabs on the 64 side are connected
to pull down resistors that allow for
the signal voltages to be dissipated
each time the rows are utilised.
Key Takeaways and Future Considerations
This project allowed me to gain quite a large amount of experience
in circuit design and fabrication. It also allowed me to gain a deeper
understanding of microcontrollers, their communication with other
PC’s, and their limitations in terms of speed, inputs, and outputs.
The most rewarding part of this project was getting a smaller
prototype to work, as it required me to figure out how to get both
the microcontroller and data visualization codes to run
simultaneously and work together. In the future, speed is the most
important factor to improve. I would like to look into an optimized
detection algorithm that allows the system to test less points until a
significant change is noticed, then increase acquisition in the region.
Flashing Bike Light
Personal Project
The purpose of this project were to design and fabricate an up-
counter from a crystal oscillator, four 4-channel multiplexers, two 8-
channel D flip-flops, and four 4-channel adders which would
consequently be used to drive a flashing LED for my bike. The
system should be robust enough to be easily mounted to the back of
my bike seat and be turned on and off with the press of a button.
Objective
Simulation of the binary logic was completed using Falstad, a free
online circuit simulation tool. This acted as a proof of concept for
the design and was helpful in determining the logic behind resetting
the counter. The first prototype was designed using a breadboard,
allowing me to build the system in small steps and ensure the
functionality of each component independently. First, the waveform
of the quartz oscillator was obtained using a oscilloscope.
Functionality was then confirmed using a single multiplexer, D flip-
flop register, and adder. Once the entire binary system was designed,
an oscilloscope was once against used to iterate through each channel
of the flip flop to ensure the wavelength of each channel doubled as
they increased in value. Using a basic diode was helpful to provide a
confirmation of the timing of the light turning on or off. Once this
was complete, the addition of the secondary power source and
MOSFET to drive the lighting of the stronger LED’s was a simple
final touch on the system.
PCB/Enclosure Design
A basic 2-layer PCB was more than enough for all required
connections. The outline of the board was designed to be a long
rectangle that would allow it to be aligned with the bike seat and not
impede pedalling. By first routing all signal paths, it was relatively
simple to ensure there were no 90 degree angles or excessively long
paths. Following this, constant voltage sources, such as power
supplies, grounds and enable signals were routed as trace length
efficiency was less important in these connections. The power
connections for both the logic and LED power sources were
implemented using vias that allowed connections to be easily
soldered. The container was designed in SOLIDWORKS to house the
PCB, power supply and LEDs while mounting seamlessly onto my
bicycle seat facing backwards for oncoming traffic to see.
Key Takeaways and Future Considerations
Segmentation was vital in the prototyping of this design. Due to the large number of connections, it was very important to break the circuit
into smaller subsystems that could be validated before incorporation into the final product. This greatly helped to reduce the amount of time
it took to debug the system and get the breadboarded model functional. An oscilloscope was used to test the waveforms of the in and outputs
of each gate in the two registers. Furthermore, an issue was encountered in the use of the MOSFET to turn the light on and off. I found that
the light would remain in whatever state it was manually set to and needed to be externally grounded to turn off. I realized that I had not
factored in the need for a pull-down resistor that would allow for the dissipation of voltage in the drain of the component. Fortunately I had
made a similar error in a previous project (See AED Emulation for more information) and was thus able to quickly determine what the issue
was by drawing on my previous knowledge. If you would like to view the PCB design, you can find it here.
AED Emulation
BME 393L Final Project
The goal of this project was to accurately emulate an AED using an
Arduino as a Moore FSM. We aimed to adjust the speeds of multiple
built in Arduino timers used to run concurrent events. Furthermore,
multiple interrupts were implemented; all connected to a common
pin, with a multiplexer used to decipher interrupt meanings.
Objective
Electrical System
One of the key aspects of the electrical system is the ability to capture
multiple different interrupts on the same interrupt pin. This was
achieved using diodes forward biased to face the interrupt pin. Here
they performed the function of allowing current to flow from the
button pressed towards the interrupt pin but not the other way. By
attaching an additional connection to a separate pin upstream of the
diode, it was possible to check which button had been pressed
immediately after the interrupt was fired. This prevented the other
buttons from being pulled high while providing the differentiation
between each. Another important aspect was the multiplexer, which
allowed for the use of an Arduino Uno rather than a Mega without a
pin shortage.
Key Takeaways and Future Considerations
One of the main takeaways that I gained from this project was a
realization of how useful FSMs can be in the integration of hardware
and software. The set states provided a much easier debugging
process than an analog system would have. Furthermore, I was able
to apply some theoretical electrical system knowledge to solve a real
problem. Initially, there were no pull-down resistors upstream of the
diodes used for interrupts, which meant that when a different
button was pressed, all of the interrupts were pulled high. This was a
really satisfying feature to debug and showed me the importance of
stepping back and trying to understand what was really happening
in a circuit. I am now working on this as a side project, and aim to
incorporate the analog reading, processing, and classification of
heart rate signals to the system.
GoKart Benchtop Electrical System
University of Waterloo IDEAs Clinic
The purpose of the benchtop electrical system is to replicate the
electrical system used in an electric GoKart built by coop students at
the UW IDEAs clinic. This vehicle is used by University of Waterloo
professors when teaching courses covering electrical and autonomous
vehicles. The benchtop electrical system will be extremely helpful
when discussing how the system works, and is laid out in such a way
to make the key components visible and their connections intuitive to
students. To build the enclosure, a mixture of hand manufactured
parts, laser cut acrylic, and mounts from McMaster-CARR were used.
Objective
The system is powered by two 12 volt batteries, which sit next to the
model as they weigh about 30 lbs each and mounting them using
acrylic would not be feasible. The top of the enclosure holds the
two motor controllers used in the system. Both motors sit inside
the enclosure, and the driving motor and generator are connected
by a chain. I designed the enclosure so that the acrylic sheets, when
laser cut, would provide ventilation for the motors inside, but still
protect any user from the chain and sprockets inside in case
anything were to happen. A small handheld controller provides the
user with the ability to drive both engines and utilize them as
generators. It simulates gas and brakes, with switches to turn on the
power supply and to put the motors in reverse. There is a place on
the front right corner for an emergency stop button which will be
incorporated as an additional safety feature.
Key Takeaways and Future Considerations
When working on this project, I had very minimal experience with
circuits and electrical design. This caused me to be very
overwhelmed when first looking at the motor controller diagrams,
and the electrical system already in the GoKart. I learned to break
down these systems so I don’t get overwhelmed when trying to
understand them. This project was also my first-time using McMaster-
CARR and designing parts to be laser cut. Although the majority of
the parts turned out very nicely, I ran into trouble with the mounting
points for the motor controller, as I used dimensions from a similar
part that were slightly different. I had to hand drill the new
mounting holes, making the sheet look sloppy in comparison to what
it should have. This taught me to be very careful when designing to
accommodate for ordered parts and tolerancing in manufacturing.
Description